@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.grid{display:grid}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.object-cover{object-fit:cover}.outline{outline-style:var(--tw-outline-style);outline-width:1px}}:root{color:#f4f7f5;font-synthesis:none;text-rendering:optimizelegibility;letter-spacing:0;background:#080b0e;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box;letter-spacing:0}html,body,#root{width:100%;min-width:320px;height:100%;margin:0;overflow:hidden}body{background:#080b0e}button{font:inherit}button:focus-visible{outline-offset:3px;outline:2px solid #c9ff3d}.game-shell{isolation:isolate;touch-action:none;cursor:crosshair;background:#080b0e;width:100%;height:100dvh;position:relative;overflow:hidden}.game-shell.phase-ready,.game-shell.phase-results{cursor:default}.game-shell:after{z-index:4;pointer-events:none;content:"";border:1px solid #c9ff3d00;border-radius:12px;position:absolute;inset:10px}.game-shell.is-flow:after{animation:1.2s ease-in-out infinite flow-border-pulse}.camera-feed,.scene-layer,.screen-grain{position:absolute;inset:0}.camera-feed{z-index:-2;opacity:0;background:#0b1114;transition:opacity .36s;overflow:hidden}.camera-feed.is-active{opacity:.44}.camera-feed video{object-fit:cover;filter:saturate(.66)contrast(1.13)brightness(.72);width:100%;height:100%;transform:scaleX(-1)}.camera-vignette{background:linear-gradient(#080b0ead,#080b0e0a 36%,#080b0e6b);position:absolute;inset:0;box-shadow:inset 0 0 180px 60px #080b0ecc}.scene-layer{z-index:-1;pointer-events:none}.game-canvas{width:100%!important;height:100%!important}.screen-grain{z-index:3;pointer-events:none;opacity:.16;background-image:repeating-linear-gradient(0deg,#0000 0 3px,#ffffff06 4px)}.interaction-zone{z-index:2;pointer-events:none;width:70vmin;height:70vmin;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.game-hud{z-index:10;pointer-events:none;position:absolute;inset:0}.brand-lockup{top:max(20px,env(safe-area-inset-top));align-items:center;gap:11px;display:flex;position:absolute;left:28px}.brand-mark{grid-template-columns:repeat(3,4px);align-items:end;gap:3px;width:18px;height:24px;display:grid}.brand-mark i{background:#c9ff3d;width:4px;display:block}.brand-mark i:first-child{height:45%}.brand-mark i:nth-child(2){background:#22d3ee;height:100%}.brand-mark i:nth-child(3){background:#ff5a4f;height:68%}.brand-lockup strong,.brand-lockup span{display:block}.brand-lockup strong{font-size:13px;font-weight:800;line-height:1.2}.brand-lockup div>span{color:#829199;margin-top:3px;font-size:9px;font-weight:700;line-height:1.2}.score-metric,.combo-metric,.accuracy-metric{--metric-color:#f4f7f5;--metric-growth:0px;font-variant-numeric:tabular-nums;pointer-events:none;position:relative}.score-metric{top:max(24px,calc(env(safe-area-inset-top) + 4px));text-align:left;min-width:280px;position:absolute;left:28px}.combo-metric{text-align:right;min-width:220px;position:absolute;top:50%;right:30px;transform:translateY(-50%)}.accuracy-metric{top:max(24px,calc(env(safe-area-inset-top) + 4px));text-align:center;min-width:100px;position:absolute;left:50%;transform:translate(-50%)}.score-metric>span,.combo-metric>span,.accuracy-metric>span,.result-stats span{color:#829199;letter-spacing:0;margin-bottom:5px;font-size:10px;font-weight:800;line-height:1.2;display:block}.score-metric>strong,.combo-metric>strong,.accuracy-metric>strong{color:var(--metric-color);font-weight:900;line-height:1;transition:color .18s,font-size .22s cubic-bezier(.2,.75,.2,1),text-shadow .18s;display:inline-block}.score-metric>strong{min-width:6ch;font-size:min(72px,calc(46px + var(--metric-growth)));letter-spacing:0}.combo-metric>strong{min-width:3ch;font-size:min(104px,calc(70px + var(--metric-growth)));letter-spacing:0}.accuracy-metric>strong{color:#f4f7f5;min-width:5ch;font-size:24px}.hold-status{top:max(68px,calc(env(safe-area-inset-top) + 52px));pointer-events:none;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.hold-status-item{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#080b0e94;border:1px solid #c9ff3d4d;border-radius:22px;align-items:center;gap:7px;min-width:92px;padding:4px 8px 4px 4px;display:flex;box-shadow:0 8px 24px #0003,0 0 18px #c9ff3d14}.hold-progress-ring{width:38px;height:38px;overflow:visible;transform:rotate(-90deg)}.hold-progress-ring circle{fill:none;stroke-width:3px}.hold-progress-track{stroke:#8fa0aa47}.hold-progress-value{stroke:#c9ff3d;stroke-linecap:round;filter:drop-shadow(0 0 4px #c9ff3da6);transition:stroke-dashoffset 90ms linear}.hold-progress-ring text{fill:#f4f7f5;letter-spacing:0;transform-origin:50%;font-size:9px;font-weight:900;transform:rotate(90deg)}.hold-status-copy{justify-items:start;gap:2px;line-height:1;display:grid}.hold-status-copy span,.hold-score-pop span{color:#829199;font-size:8px;font-weight:850}.hold-status-copy strong{color:#dfff8e;font-variant-numeric:tabular-nums;font-size:12px}.hold-score-events{z-index:9;pointer-events:none;justify-items:center;gap:4px;display:grid;position:absolute;top:calc(50% + 13vmin);left:50%;transform:translate(-50%,-50%)}.hold-score-pop{color:#c9ff3d;font-variant-numeric:tabular-nums;text-shadow:0 0 14px #c9ff3d9e;align-items:baseline;gap:5px;animation:.72s cubic-bezier(.2,.75,.2,1) both hold-score-pop;display:flex}.hold-score-pop strong{font-size:18px;font-weight:900}.score-metric.has-stage>strong,.combo-metric.has-stage>strong{text-shadow:0 0 24px var(--metric-color)}@supports (color:color-mix(in lab,red,red)){.score-metric.has-stage>strong,.combo-metric.has-stage>strong{text-shadow:0 0 24px color-mix(in srgb,var(--metric-color) 54%,transparent)}}.score-metric.has-stage>strong,.combo-metric.has-stage>strong{animation:.42s cubic-bezier(.2,.75,.2,1) both metric-stage-pop}.combo-metric>span{transition:color .18s,text-shadow .18s}.combo-metric.is-flow>span{color:#c9ff3d;text-shadow:0 0 12px #c9ff3d9e}.combo-metric.is-flow>strong{color:#c9ff3d;text-shadow:0 0 30px #c9ff3db8}.combo-metric strong.is-broken{color:#ff5a4f;animation:.36s ease-out both combo-break}.combo-milestone{width:150px;color:var(--metric-color);pointer-events:none;text-shadow:0 0 14px var(--metric-color);justify-content:flex-end;align-items:baseline;gap:5px;animation:.9s cubic-bezier(.2,.75,.2,1) both combo-milestone-pop;display:flex;position:absolute;top:calc(100% + 10px);right:0}@supports (color:color-mix(in lab,red,red)){.combo-milestone{text-shadow:0 0 14px color-mix(in srgb,var(--metric-color) 64%,transparent)}}.combo-milestone strong{min-width:auto;color:inherit;font-size:24px}.combo-milestone span{color:#829199;letter-spacing:0;font-size:8px;font-weight:800}.score-milestone{color:var(--metric-color);pointer-events:none;text-shadow:0 0 14px var(--metric-color);align-items:baseline;gap:7px;animation:.9s cubic-bezier(.2,.75,.2,1) both score-milestone-pop;display:flex;position:absolute;top:calc(100% + 8px);left:0}@supports (color:color-mix(in lab,red,red)){.score-milestone{text-shadow:0 0 14px color-mix(in srgb,var(--metric-color) 64%,transparent)}}.score-milestone strong{color:inherit;font-size:22px}.score-milestone span{color:#829199;letter-spacing:0;font-size:8px;font-weight:800}.combo-metric small,.accuracy-metric small{color:currentColor;letter-spacing:0;opacity:.68;margin-left:1px;font-size:.28em}.input-status{top:max(24px,calc(env(safe-area-inset-top) + 4px));color:#9aa8ae;background:#080b0e75;border:1px solid #8fa0aa3d;border-radius:3px;align-items:center;gap:7px;min-height:26px;padding:0 9px;font-size:9px;font-weight:800;display:flex;position:absolute;right:28px}.input-status>span{background:#65737a;border-radius:50%;width:6px;height:6px}.input-status.is-live{color:#dfff8e;border-color:#c9ff3d61}.input-status.is-live>span{background:#c9ff3d;animation:1.4s ease-in-out infinite status-pulse;box-shadow:0 0 12px #c9ff3db8}.input-status.is-waiting>span{background:#ffd166}.input-status.is-fallback>span{background:#ff5a4f}.song-progress{background:#ffffff0f;width:100%;height:2px;position:absolute;top:0;left:0;overflow:hidden}.song-progress i{transform-origin:0;background:#c9ff3d;width:100%;height:100%;transition:transform 80ms linear;display:block}.ready-state{z-index:7;pointer-events:none;position:absolute;top:26%;left:7vw}.ready-kicker,.ready-mode,.results-kicker{color:#c9ff3d;font-size:10px;font-weight:800;line-height:1.2;display:block}.ready-state h1{color:#f4f7f5;margin:13px 0 16px;font-size:76px;font-weight:900;line-height:.88}.ready-rule{background:#ff5a4f;width:90px;height:3px;margin-bottom:12px}.ready-mode{color:#829199}.hand-gate{z-index:14;text-align:center;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);pointer-events:auto;background:#090d0fed;border:1px solid #22d3ee5c;border-top:3px solid #22d3ee;border-radius:7px;width:min(410px,100vw - 32px);padding:27px 30px 25px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 30px 100px #00000085}.hand-gate-kicker{color:#22d3ee;font-size:10px;font-weight:850;line-height:1.2}.hand-gate h2{color:#f4f7f5;margin:10px 0 16px;font-size:25px;line-height:1.08}.hand-gate-count{justify-content:center;gap:8px;display:flex}.hand-gate-count span{color:#829199;border:1px solid #8fa0aa47;border-radius:4px;min-width:58px;padding:7px 10px;font-size:10px;font-weight:800;transition:border-color .14s,background .14s,color .14s}.hand-gate-count span.is-detected{color:#c9ff3d;background:#c9ff3d1f;border-color:#c9ff3db8}.hand-gate p{color:#829199;margin:15px 0 0;font-size:11px;line-height:1.5}.hand-gate .secondary-command{justify-self:center;margin-top:17px}.music-workbench,.latency-panel{z-index:11;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);pointer-events:auto;background:#090d0fe0;border:1px solid #8fa0aa3d;border-radius:7px;width:min(370px,100vw - 40px);padding:15px;position:absolute;box-shadow:0 20px 70px #00000052}.music-workbench{top:17%;right:5vw}.latency-panel{border-top:2px solid #22d3ee;width:min(330px,100vw - 40px);top:17%;left:5vw}.music-workbench-heading,.latency-heading,.music-progress-label,.music-track-meta,.latency-manual-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.music-workbench-heading{min-width:0;margin-bottom:13px}.music-workbench-heading>div{min-width:0}.music-workbench-heading strong{color:#f4f7f5;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.2;display:block;overflow:hidden}.panel-eyebrow,.latency-heading>span{color:#c9ff3d;letter-spacing:.1em;align-items:center;gap:6px;margin-bottom:6px;font-size:9px;font-weight:850;display:flex}.quiet-icon-button{color:#9aa8ae;cursor:pointer;background:0 0;border:1px solid #8fa0aa33;border-radius:4px;flex:none;place-items:center;width:28px;height:28px;display:grid}.quiet-icon-button:hover{color:#f4f7f5;border-color:#f4f7f580}.music-import-button,.latency-start,.latency-tap,.music-regenerate-command,.preview-command{cursor:pointer;border-radius:4px;justify-content:center;align-items:center;gap:7px;display:inline-flex}.music-import-button{color:#dfff8e;background:#c9ff3d0f;border:1px dashed #c9ff3d85;width:100%;height:38px;font-size:11px;font-weight:800}.music-import-button:hover{background:#c9ff3d1f}.music-import-button input{display:none}.music-caption,.music-error{color:#829199;margin:8px 0 0;font-size:9px;line-height:1.35;display:block}.music-error{color:#ff8790}.music-progress-label{color:#c8d0d3;font-size:10px;font-weight:750}.music-progress-label strong{color:#c9ff3d;font-variant-numeric:tabular-nums}.music-progress-track{background:#ffffff14;border-radius:5px;height:4px;margin-top:10px;overflow:hidden}.music-progress-track i{transform-origin:0;background:#c9ff3d;width:100%;height:100%;transition:transform .16s;display:block;transform:scaleX(0)}.music-track-meta{color:#829199;font-size:9px}.music-track-meta span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.music-track-meta strong{color:#f4f7f5;font-variant-numeric:tabular-nums}.music-waveform{border-top:1px solid #8fa0aa1f;border-bottom:1px solid #8fa0aa1f;align-items:center;gap:2px;height:42px;margin:10px 0;padding:0 3px;display:flex}.music-waveform i{opacity:.58;background:#22d3ee;border-radius:2px;width:100%;min-height:3px;display:block}.music-beat-preview{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.music-beat-lights{gap:6px;display:flex}.music-beat-lights i{background:#46535a;border-radius:50%;width:7px;height:7px;transition:background 90ms,box-shadow 90ms;display:block}.music-beat-lights i.is-active{background:#c9ff3d;box-shadow:0 0 12px #c9ff3dc7}.preview-command{color:#c8d0d3;background:0 0;border:1px solid #8fa0aa4d;height:27px;padding:0 9px;font-size:9px;font-weight:800}.preview-command:hover{color:#f4f7f5;border-color:#22d3ee}.music-analysis-stats{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px;display:grid}.music-analysis-stats>div{background:#ffffff09;border-left:2px solid #22d3ee6b;padding:7px 8px}.music-analysis-stats span,.music-correction-row label>span{color:#829199;margin-bottom:4px;font-size:8px;font-weight:800;display:block}.music-analysis-stats strong{color:#f4f7f5;font-variant-numeric:tabular-nums;font-size:13px}.music-confidence-warning{color:#ffd98a;background:#ffd1660f;border-left:2px solid #ffd166;margin:-2px 0 9px;padding:7px 8px;font-size:9px;line-height:1.35}.music-correction-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.music-correction-row label{color:#829199;font-size:9px;font-weight:750;display:block}.music-correction-row input,.latency-manual-row input,.latency-audio-row input{color:#f4f7f5;font-variant-numeric:tabular-nums;background:#ffffff0b;border:1px solid #8fa0aa3d;border-radius:3px;outline:0;width:100%;height:29px;padding:0 8px;font-size:11px}.music-correction-row input:focus,.latency-manual-row input:focus,.latency-audio-row input:focus{border-color:#22d3ee}.music-segment-row{gap:8px;margin-top:8px;display:flex}.mini-segment{background:#ffffff06;border:1px solid #8fa0aa2e;border-radius:4px;grid-auto-columns:1fr;grid-auto-flow:column;min-width:108px;height:29px;padding:2px;display:grid}.mini-segment button,.latency-input-tabs button{color:#829199;cursor:pointer;background:0 0;border:0;border-radius:2px;font-size:9px;font-weight:800}.mini-segment button:hover,.mini-segment button.is-selected,.latency-input-tabs button.is-selected{color:#080b0e;background:#f4f7f5eb}.difficulty-segment{flex:1}.music-section-strip{gap:2px;height:5px;margin:11px 0 9px;display:flex}.music-section-strip i{opacity:.82;border-radius:2px;min-width:3px}.section-quiet{background:#46535a}.section-normal{background:#22d3ee}.section-peak{background:#c9ff3d}.music-regenerate-command{color:#dfff8e;background:#c9ff3d12;border:1px solid #c9ff3d66;width:100%;height:31px;font-size:9px;font-weight:800}.music-regenerate-command:disabled{color:#829199;cursor:default;background:0 0;border-color:#8fa0aa29}.latency-heading{margin-bottom:11px}.latency-heading>span{color:#22d3ee;margin:0}.hand-tutorial{background:#c9ff3d0b;border:1px solid #c9ff3d33;border-radius:5px;margin-bottom:13px;padding:10px 11px 9px}.hand-tutorial-title{color:#dfff8e;align-items:center;gap:6px;font-size:10px;font-weight:850;display:flex}.hand-tutorial ol{color:#829199;gap:4px;margin:8px 0 0;padding:0 0 0 18px;font-size:9px;line-height:1.45;display:grid}.camera-calibration-status{background:#22d3ee0b;border:1px dashed #22d3ee61;border-radius:5px;align-content:center;gap:6px;min-height:66px;margin:0 0 10px;padding:10px 11px;display:grid}.camera-calibration-status strong{color:#b8f6ff;font-size:10px;font-weight:850}.camera-calibration-status span{color:#829199;font-size:9px;line-height:1.45}.camera-calibration-target{z-index:15;pointer-events:none;background:#c9ff3d14;border:1px solid #c9ff3dc2;border-radius:50%;width:58px;height:58px;position:fixed;transform:translate(-50%,-50%);box-shadow:0 0 0 8px #c9ff3d0f,0 0 34px #c9ff3d57}.camera-calibration-target:before,.camera-calibration-target:after,.camera-calibration-target span{content:"";background:#c9ff3d;display:block;position:absolute}.camera-calibration-target:before{width:calc(100% - 20px);height:1px;top:50%;left:10px}.camera-calibration-target:after{width:1px;height:calc(100% - 20px);top:10px;left:50%}.camera-calibration-target span{border-radius:50%;width:7px;height:7px;top:50%;left:50%;transform:translate(-50%,-50%)}.latency-input-tabs{background:#ffffff06;border:1px solid #8fa0aa2e;border-radius:4px;grid-template-columns:1fr 1fr;gap:3px;height:28px;margin-bottom:12px;padding:2px;display:grid}.latency-pulse{opacity:.42;border:2px solid #22d3ee;border-radius:50%;width:17px;height:17px;margin:0 auto 10px;transition:transform .1s,opacity .1s,box-shadow .1s}.latency-pulse.is-pulse{opacity:1;transform:scale(1.6);box-shadow:0 0 20px #22d3ee99}.latency-tap,.latency-start{color:#b8f6ff;background:#22d3ee14;border:1px solid #22d3ee73;width:100%;height:31px;font-size:9px;font-weight:800}.latency-tap:disabled{opacity:.46;cursor:default}.latency-manual-row{color:#829199;align-items:flex-end;margin-top:11px;font-size:9px}.latency-manual-row label,.latency-audio-row{white-space:nowrap;align-items:center;gap:6px;display:flex}.latency-manual-row input,.latency-audio-row input{width:70px}.latency-manual-row span{color:#c9ff3d;align-items:center;gap:3px;font-size:8px;display:flex}.latency-audio-row{color:#829199;margin-top:9px;font-size:9px}.latency-start{color:#c8d0d3;background:0 0;border-color:#8fa0aa4d;margin-top:11px}.control-dock{z-index:12;bottom:max(22px,env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0b0f12e0;border:1px solid #8fa0aa38;border-radius:7px;align-items:center;gap:10px;min-height:50px;padding:6px;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 18px 56px #00000057}.control-dock.phase-playing{left:24px;transform:none}.utility-controls{gap:4px;display:flex}.icon-button{color:#9dabb1;cursor:pointer;background:0 0;border:0;border-radius:5px;place-items:center;width:38px;height:38px;padding:0;display:grid}.icon-button:hover{color:#f4f7f5;background:#ffffff14}.icon-button:disabled{opacity:.42;cursor:wait}.grid-segment,.input-segment{background:#ffffff06;border:1px solid #8fa0aa29;border-radius:5px;grid-template-columns:1fr 1fr;width:132px;height:38px;padding:3px;display:grid}.input-segment button{color:#829199;cursor:pointer;background:0 0;border:0;border-radius:3px;justify-content:center;align-items:center;gap:4px;min-width:0;font-size:10px;font-weight:800;display:inline-flex}.input-segment button.is-selected{color:#080b0e;background:#eef3f0}.grid-segment button{color:#829199;cursor:pointer;background:0 0;border:0;border-radius:3px;font-size:11px;font-weight:800}.grid-segment button.is-selected{color:#080b0e;background:#eef3f0}.primary-command,.secondary-command{cursor:pointer;border-radius:5px;justify-content:center;align-items:center;gap:8px;height:38px;padding:0 17px;font-size:12px;font-weight:850;display:inline-flex}.primary-command{color:#080b0e;background:#c9ff3d;border:1px solid #c9ff3d}.primary-command:hover{background:#e0ff8d}.primary-command:disabled{opacity:.5;cursor:wait}.secondary-command{color:#c8d0d3;background:0 0;border:1px solid #8fa0aa4d}.secondary-command:hover{color:#f4f7f5;border-color:#f4f7f5a3}.countdown{z-index:15;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.countdown span{color:#f4f7f5;text-shadow:0 0 44px #22d3ee52;font-size:92px;font-weight:900;line-height:1;animation:.52s cubic-bezier(.2,.75,.2,1) both countdown-pop}.hit-feedback-stack{z-index:8;pointer-events:none;justify-items:center;gap:5px;min-width:110px;display:grid;position:absolute;top:calc(50% + 38vmin);left:50%;transform:translate(-50%,-50%)}.hit-feedback{color:#f4f7f5;pointer-events:none;font-size:16px;font-weight:900;line-height:1;animation:.52s ease-out both feedback-rise}.hit-feedback.tone-perfect{color:#c9ff3d;text-shadow:0 0 18px #c9ff3db8;font-size:18px}.hit-feedback.tone-good{color:#22d3ee;text-shadow:0 0 14px #22d3ee8f}.hit-feedback.tone-hit{color:#ffd166;text-shadow:0 0 10px #ffd16666}.hit-feedback.tone-miss{color:#ff5a4f;text-shadow:0 0 14px #ff5a4f8f}.finger-cursor{z-index:20;color:#f4f7f5;pointer-events:none;filter:drop-shadow(0 2px 8px #000000b3);place-items:center;width:42px;height:42px;display:grid;position:absolute;transform:translate(-50%,-50%)}.cursor-ring{border:2px solid #c9ff3d;border-radius:50%;transition:transform 80ms,background 80ms;position:absolute;inset:1px;box-shadow:0 0 16px #c9ff3d75}.hit-feedback.tone-bonus{color:#ffd84d;text-shadow:0 0 18px #ffd84dad;font-size:17px}.results-panel{z-index:14;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#090d0fed;border:1px solid #8fa0aa47;border-top:3px solid #c9ff3d;border-radius:7px;width:min(430px,100vw - 32px);max-height:calc(100dvh - 32px);padding:30px;position:absolute;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 30px 100px #0000008c}.pause-panel{z-index:14;text-align:center;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#090d0fe6;border:1px solid #22d3ee57;border-top:3px solid #22d3ee;border-radius:7px;width:min(360px,100vw - 32px);padding:28px 30px 26px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 30px 100px #00000080}.pause-kicker{color:#22d3ee;letter-spacing:0;font-size:10px;font-weight:850;display:block}.pause-panel h2{color:#f4f7f5;margin:10px 0 7px;font-size:28px;line-height:1.05}.pause-panel p{color:#829199;margin:0;font-size:11px;line-height:1.5}.pause-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:19px;display:flex}.pause-actions .primary-command,.pause-actions .secondary-command{min-width:150px}.results-panel h2{color:#f4f7f5;margin:8px 0 20px;font-size:28px;line-height:1.05}.result-song{color:#829199;text-overflow:ellipsis;white-space:nowrap;margin:-10px 0 18px;font-size:11px;font-weight:700;overflow:hidden}.result-score{color:#f4f7f5;font-variant-numeric:tabular-nums;border-top:1px solid #8fa0aa2e;border-bottom:1px solid #8fa0aa2e;gap:6px;padding:18px 0;line-height:1;display:grid}.result-score span{color:#829199;font-size:9px;font-weight:800}.result-score strong{font-size:52px;font-weight:900}.result-stats{grid-template-columns:repeat(4,1fr);gap:16px 12px;margin:20px 0 26px;display:grid}.result-stats strong{font-size:18px;line-height:1}.result-hold-summary{border-top:1px solid #8fa0aa24;grid-template-columns:repeat(4,1fr);gap:12px;margin:-8px 0 26px;padding:12px 0 0;display:grid}.result-hold-summary span{color:#829199;margin-bottom:5px;font-size:8px;font-weight:800;display:block}.result-hold-summary strong{color:#dfff8e;font-variant-numeric:tabular-nums;font-size:16px;line-height:1}.result-analysis{border-top:1px solid #8fa0aa2e;margin:0 0 24px;padding:13px 0 0}.result-analysis-heading,.result-chart-scale,.result-misses{justify-content:space-between;align-items:center;gap:10px;display:flex}.result-analysis-heading{color:#829199;font-size:9px;font-weight:800}.result-analysis-heading strong{color:#c9ff3d;font-variant-numeric:tabular-nums;font-size:12px}.result-accuracy-chart{width:100%;height:76px;margin-top:9px;display:block;overflow:visible}.result-chart-grid{stroke:#8fa0aa29;stroke-width:.6px;vector-effect:non-scaling-stroke}.result-chart-line{fill:none;stroke:#c9ff3d;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;vector-effect:non-scaling-stroke}.result-chart-scale{color:#53636a;margin-top:-2px;font-size:8px;font-weight:800}.result-misses{color:#829199;align-items:flex-start;margin-top:13px;font-size:9px;font-weight:800}.result-misses em{color:#c9ff3d;font-style:normal;font-weight:700}.result-miss-list{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.result-miss-list span{color:#ff8b82;font-variant-numeric:tabular-nums;border:1px solid #ff5a4f59;border-radius:3px;padding:4px 6px;font-size:9px}.result-actions{justify-content:flex-end;gap:8px;display:flex}@keyframes status-pulse{50%{opacity:.45}}@keyframes countdown-pop{0%{opacity:0;transform:scale(1.5)}to{opacity:1;transform:scale(1)}}@keyframes feedback-rise{0%{opacity:0;transform:translateY(8px)}25%{opacity:1}to{opacity:0;transform:translateY(-18px)}}@keyframes feedback-fade{0%{opacity:0}20%{opacity:1}to{opacity:0}}@keyframes combo-break{0%{opacity:.35;transform:translateY(-4px)scale(1.18)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes combo-milestone-pop{0%{opacity:0;transform:translateY(5px)scale(.82)}22%{opacity:1;transform:translateY(0)scale(1.05)}to{opacity:0;transform:translateY(-15px)scale(1)}}@keyframes score-milestone-pop{0%{opacity:0;transform:translateY(5px)scale(.82)}22%{opacity:1;transform:translateY(0)scale(1.05)}to{opacity:0;transform:translateY(-15px)scale(1)}}@keyframes hold-score-pop{0%{opacity:0;transform:translateY(8px)scale(.82)}20%{opacity:1;transform:translateY(0)scale(1.05)}to{opacity:0;transform:translateY(-19px)scale(1)}}@keyframes metric-stage-pop{0%{transform:scale(.9)}48%{transform:scale(1.13)}to{transform:scale(1)}}@keyframes flow-border-pulse{0%,to{opacity:.1;border-color:#c9ff3d24}50%{opacity:.8;border-color:#c9ff3d80}}@media(prefers-reduced-motion:reduce){.camera-feed,.cursor-ring{transition-duration:.01ms}.hit-feedback,.combo-milestone,.score-milestone{animation:.18s linear both feedback-fade}.score-metric.has-stage>strong,.combo-metric.has-stage>strong,.combo-metric strong.is-broken{animation:none}.hold-score-pop{animation:.18s linear both feedback-fade}.game-shell.is-flow:after{opacity:.45;border-color:#c9ff3d47;animation:none}}@media(max-width:760px){.brand-lockup{top:max(16px,env(safe-area-inset-top));left:16px}.score-metric{top:max(18px,calc(env(safe-area-inset-top) + 2px));min-width:184px;left:16px}.score-metric>strong{font-size:min(54px,calc(36px + var(--metric-growth)))}.combo-metric{top:max(126px,calc(env(safe-area-inset-top) + 108px));min-width:156px;right:16px;transform:none}.combo-metric>strong{font-size:min(80px,calc(54px + var(--metric-growth)))}.accuracy-metric{top:max(20px,calc(env(safe-area-inset-top) + 4px))}.accuracy-metric>strong{font-size:20px}.input-status{top:max(18px,calc(env(safe-area-inset-top) + 2px));right:16px}.ready-state{top:19%;left:22px}.ready-state h1{margin-top:10px;font-size:54px}.music-workbench{width:min(370px,100vw - 40px);top:34%;right:20px}.latency-panel{width:min(330px,100vw - 40px);top:34%;left:20px}.control-dock{bottom:max(14px,env(safe-area-inset-bottom));gap:5px;max-width:calc(100vw - 20px);padding:5px}.control-dock.phase-ready{grid-template-columns:repeat(3,minmax(0,1fr));width:calc(100vw - 20px);display:grid}.control-dock.phase-ready .utility-controls{grid-column:1/-1;justify-content:center}.control-dock.phase-playing{left:12px;bottom:max(12px,env(safe-area-inset-bottom))}.icon-button{width:34px;height:36px}.input-segment,.grid-segment{width:min(116px,28vw);height:36px}.control-dock.phase-ready>.primary-command{min-width:0;padding-left:8px;padding-right:8px}.primary-command{height:36px;padding:0 13px}.interaction-zone{width:70vmin;height:70vmin}.hit-feedback-stack{top:calc(50% + 39vmin)}.hold-status{top:max(72px,calc(env(safe-area-inset-top) + 56px))}.hold-score-events{top:calc(50% + 10vmin)}}.control-dock.is-paused{border-color:#22d3ee80}@media(max-width:430px){.brand-lockup div>span{display:none}.brand-lockup strong{font-size:11px}.brand-mark{transform-origin:0;transform:scale(.86)}.accuracy-metric{display:none}.score-metric>strong{letter-spacing:0}.combo-metric{top:max(112px,calc(env(safe-area-inset-top) + 94px))}.ready-state{top:18%}.music-workbench,.latency-panel{top:31%}.results-panel{padding:24px 20px}.result-score strong{font-size:44px}.result-stats,.result-hold-summary{grid-template-columns:repeat(2,1fr)}}@media(prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
